regex - oefening find and replace 1
Slim vinden en vervangen
Het volgende voorbeeld toont een kopie van een inhoudstafel. Ik wil alleen de tekst van de hoofdstukken overhouden. Alle punten en pagina nummers moeten weg. Hoe kan je dat doen met één find and replace actie?
Creating Solutions 76 4.1 Our Case Study: Friendly Bank .......................................... 76 4.2 Enumerated Types ....................................................... 76 4.3 Structures ............................................................ 79 4.4 Objects, Structures and References ................................... 82 4.5 Designing With Objects ................................................. 89 4.6 Static Items ........................................................... 94 4.7 The Construction of Objects ......................................... 98 4.8 From Object to Component ..................................... 104 4.9 Inheritance ............................................................ 109 4.10 Object Etiquette .............................................. 119 4.11 The power of strings and chars ..................................... 124 4.12 Properties .......................................................... 126 4.13 Building a Bank ................................................ 129
Welke patronen herken je?
- een groep cijfers aan het begin van de lijn die eindigt met een spatie
- een reeks van punten en spaties die eindigen op een cijfer
- een groep van cijfers op het einde van de lijn met een spatie ervoor
Patronen opstellen
Een groep cijfers aan het begin van de lijn die eindigt met een spatie
- Om aan te geven dat de groep aan het begin van de lijn staat gebruiken we het ^ teken.
- Om aan de geven dat de groep cijfers en punten mag bevatten gebruiken we een karakterklasse [0-9\.]. Het \. is een escape teken omdat we het punt gebruikt wordt als jokerteken. Als we echt een punt willen, plaatsen we er een backslash voor.
- Om aan de geven dat die karakterklasse herhaald mag worden tot aan de spatie voegen we na de klasse een + teken en een spatie toe
Dat levert het volgende patroon op: ^[0-9\.]+ . Let op de spatie achter het plusteken!
Een reeks van punten en spaties die eindigen op een cijfer
Het patroon voor een reekst van punten kunnen schrijven als [\. ]+. Het plus teken geeft aan dat het punt of spatie minstens één keer moet voorkomen. En we voegen er [0-9]+ aan toe om de cijfers op het einde van de regel te vinden, namelijk een karakterklasse gevolgd door een +.
Dit levert het volgende patroon op: [\. ]+[0-9]+.
Patronen combineren in een logische of
Als we het volgende patroon [\. ]+[0-9]+|^[0-9\.]+ in het zoekvak in Webmatrix invullen en in het vervangvak niets, krijgen we het resultaat wat we wilden:
Creating Solutions Our Case Study: Friendly Bank Enumerated Types Structures Objects, Structures and References Designing With Objects Static Items The Construction of Objects From Object to Component Inheritance x.10 Object Etiquette The power of strings and chars Properties Building a Bank